package com.common.atom.seal.util;

import org.apache.commons.lang3.StringUtils;

import java.awt.*;

/**
 * description: ColorUtils <br>
 * date: 2023/4/13  <br>
 * author: zss <br>
 * version: 1.0.0 <br>
 */
public class ColorUtils {


    public static final String RED_MODE = "1";
    public static final String GREEN_MODE = "2";
    public static final String BLUE_MODE = "3";
    public static final String BLACK_MODE = "4";


    public static Color getColor(String color) {
        return getColor(color, null);
    }

    /**
     * 获取颜色：
     * 模式1：1红色 2 绿色 3 蓝色 4 黑色
     * 模式2：#rrggbb
     *
     * @param color 颜色，取值范围为1~4或#rrggbb格式
     * @param alpha 通明度 1~10
     * @return
     */
    public static Color getColor(String color, Double alpha) {
        int alphaValue = 255;
        if (alpha != null) {
            alphaValue = (int) (alpha * 25.5);
        }
        if (StringUtils.isBlank(color)) {
            return new Color(230, 0, 18, alphaValue);
        }
        if (color.startsWith("#")) {
            Color c = Color.decode(color);
            if (alphaValue != 255) {
                c = new Color(c.getRed(), c.getGreen(), c.getBlue(), alphaValue);
            }
            return c;
        }

        if (RED_MODE.equals(color)) {
            return new Color(230, 0, 18, alphaValue);
        }
        if (GREEN_MODE.equals(color)) {
            return new Color(18, 230, 18, alphaValue);
        }
        if (BLUE_MODE.equals(color)) {
            return new Color(18, 0, 230, alphaValue);
        }
        if (BLACK_MODE.equals(color)) {
            return new Color(0, 0, 0, alphaValue);
        }

        throw new RuntimeException("颜色格式不正确，格式1：#rrggbb，格式2：1~4，对应红、绿、蓝、黑。");
    }


}
